Abstraction Layers In Programming - Jonathan Blow